package cn.bocai.pc.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.bocai.pc.dao.BcLinktbleMapper;
import cn.bocai.pc.dao.BcLinktypeMapper;
import cn.bocai.pc.dao.VariableMapper;
import cn.bocai.pc.model.BcLinktble;
import cn.bocai.pc.model.BcLinktype;
import cn.bocai.pc.service.BcLinktbleService;
import cn.bocai.pc.util.FMutil;
@Service
public class BcLinktbleServiceImpl implements BcLinktbleService {
     @Autowired
     private BcLinktbleMapper  BcLinktbleDao;
     @Autowired
 	private  VariableMapper variableDao;
     @Autowired
     private BcLinktypeMapper bcLinktypeDao;
     /**
		 * 通过类型id查询出对应的链接信息
		 * @param linktypeid  类型id
		 * @time 2015/07/04
		 */
    public List<BcLinktble> selectByLink(String linktypeid) {
    	List<BcLinktble> selectByLink = BcLinktbleDao.selectByLink(linktypeid);
 		return selectByLink;
 	}
    
    /**
 	 * 后台：查询出数据的总行数
 	 * @time 2015/08/12
 	 */
 	public int tableLineNumber(Map<String, Object> map) {
		return BcLinktbleDao.tableLineNumber(map);
 		
 	}
    
 	 /**
 	* 后台：查询出数据分页信息
 	* @time 2015/08/12
 	*/
 	public List<BcLinktble> tablePaging(Map<String, Object> tablepar){
 		return BcLinktbleDao.tablePaging(tablepar);
 	}
    
 	/**
 	* 后台：根据类型删除所有匹配的数据
 	* @time 2015/08/12
 	*/
 	public int deleteByType(String linkType){
 		return BcLinktbleDao.deleteByType(linkType);
 	}
 	
 	/**
 	* 后台：根据传入的数据删除对应的
 	* @time 2015/08/12
 	*/
	public int deleteByPrimaryKey(String id) {
		return BcLinktbleDao.deleteByPrimaryKey(id);
	}
	
	/**
	 * 存入数据
	 * @time 2015/08/13
	 */
	public int insert(BcLinktble record) {
		int insert = BcLinktbleDao.insert(record);
		return insert;
	}

	public int insertSelective(BcLinktble record) {
		// TODO Auto-generated method stub
		return 0;
	}

	public BcLinktble selectByPrimaryKey(String id) {
		// TODO Auto-generated method stub
		return null;
	}
	/**
	* 后台：数据修改
	* @time 2015/08/14
	*/
	public int updateByPrimaryKeySelective(BcLinktble record) {
		return BcLinktbleDao.updateByPrimaryKeySelective(record);
	}
	
	/**
	* 后台：数据修改
	* @time 2015/08/14
	*/
	public int updateLinkType(HashMap<String, Object> map){
		return BcLinktbleDao.updateLinkType(map);
	}
	
	/**
 	* 后台：根据类型查询出所有数据
 	* @time 2015/09/29
 	*/
 	public String selectLinktble(String type){
 		String PackPath = variableDao.selectVariable("PACKGE_TEMPLATE");//模板地址
		String HtmlPath = variableDao.selectVariable("LINK_Address");//生成静态html模板存放地址
		List<BcLinktble> selectLinktble = BcLinktbleDao.selectLinktble(type);
		String var="success";
		FMutil fMutil = new FMutil();
		  for(int i = 0;i < selectLinktble.size(); i ++){
			  Map<String,Object> map=new HashMap<String,Object>();
			  BcLinktble bcPicture=selectLinktble.get(i);
			  String str = bcPicture.getSkipAddress().toString();
			  String picname = str.substring(str.lastIndexOf("/")+1);
			  map.put("url", bcPicture.getLinkAddress());
				//生成静态页面。如名称相同覆盖
				try {
					fMutil.ouputLinkFile("friendLink.ftl", picname, map,"/"+picname,PackPath,HtmlPath);
				} catch (Exception e) {
					var="erro";
					e.printStackTrace();
				}
		  }
 		return var;
 	}
 	
 	/**
 	* 后台：生成大家来看模板
 	* @time 2015/09/29
 	*/
 	public String FtlLookFour(){
 		String PackPath = variableDao.selectVariable("PACKGE_TEMPLATE");//模板地址
		String HtmlPath = variableDao.selectVariable("LINK_LookFourAdress");//生成静态html模板存放地址
		String picURL = variableDao.selectVariable("BA_URL");//http://localhost:8081
		
		/*List<BcLinktble> AllDateTW = BcLinktbleDao.selectLinktble("2");
		List<BcLinktble> AllDateTR = BcLinktbleDao.selectLinktble("3");*/
		Map<String,Object> allMap=new HashMap<String,Object>();
	
		 List<Map<String, Object>> arrayList2 = publicFMutil("2");
		 List<Map<String, Object>> arrayList3 = publicFMutil("3");
		
		 allMap.put("AllDateTW", arrayList2);
		 allMap.put("AllDateTR", arrayList3);
		 allMap.put("url", picURL);
		
		String var="success";
		FMutil fMutil = new FMutil();
				//生成静态页面。如名称相同覆盖
				try {
					fMutil.ouputLinkFile("LookFour.ftl","lookFour.html", allMap,"/lookFour.html",PackPath,HtmlPath);
				} catch (Exception e) {
					var="erro";
					e.printStackTrace();
				}
 		return var;
 	}
	public int updateByPrimaryKey(BcLinktble record) {
		// TODO Auto-generated method stub
		return 0;
	}
	//根据类型获取数据
	public List<Map<String, Object>> publicFMutil(String type){
		//查询友情链接类型参数1表示类型
		List<BcLinktype> selectByFriendship = bcLinktypeDao.selectByFriendship(type);
		List<Map<String, Object>> arrayList = new ArrayList<Map<String, Object>>();
		 for(BcLinktype tmp:selectByFriendship){
			 Map<String,Object> map=new HashMap<String,Object>();
			//通过类型id查询出对应的链接信息
			 List<BcLinktble> selectByLink = BcLinktbleDao.selectByLink(tmp.getId());
			 map.put("LinkKey",tmp.getLinkTypename());
			 map.put("LinkVal",selectByLink);
			 arrayList.add(map);
	        }
		return arrayList;
	}

}
